package com.bibimaya.auto.mapper.dao.annotation;

import com.bibimaya.auto.mapper.dao.constant.Const;
import com.bibimaya.auto.mapper.dao.mapper.BaseMethodMapper;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AMapper {

    String mapperSuffix() default Const.DEFAULT_MAPPER_SUFFIX;

    String entitySuffix() default Const.DEFAULT_MAPPER_SUFFIX;

    Class entityClass() default AMapper.class;

    WhereAppend[] whereAppendMap() default {};

    @Retention(RetentionPolicy.RUNTIME)
    @Target({})
    public @interface WhereAppend {

        Class<? extends BaseMethodMapper> mapperInterface();

        String appendSqlId() default "";
    }

}
